/*
guopengcheng
2015-11-30
后台管理
*/
(function($) {
    $.fn.jrdek = function(options) {
        $.fn.jrdek.defaults = {
            type: "tip", //方法名称,默认tip
            //左侧菜单参数
            foldCell: "", //折叠左侧菜单className
            //后台自适应浏览器窗口参数
            Mtop: "", //顶部的className
            Mleft: "", //左侧的className
            Mright: "", //右侧的className
            Mfooter: "" //底部的className
        };
        return this.each(function() {
            var opts = $.extend({}, $.fn.jrdek.defaults, options);
            $(function() {
                //默认给定容器宽高
                function free() {
                    var Width = $(window).width();
                    var Height = $(window).height();
                    var tWidth = $(opts.Mleft).innerWidth(); //左侧宽度
                    var tHidth = $(opts.Mtop).innerHeight(); //top高度
                    var bHidth = $(opts.Mfooter).innerHeight(); //底部高度
                    $(opts.Mleft).css("height", (Height - tHidth - bHidth) + 'px');
                    $(opts.Mright).css("height", (Height - tHidth - bHidth - 40) + 'px');
                    if ($(opts.Mleft).is(":hidden")) {
                        $(opts.Mright).css("width", (Width - 40) + 'px');
                    } else {
                        $(opts.Mright).css("width", (Width - tWidth - 40) + 'px');
                    }
                }
                free();
                Roll();
                //自适应浏览器窗口（适用于后台布局）
                //当浏览器宽高发生改变时给定容器宽高
                $(window).resize(function() {
                    var fold = $(opts.Mleft).css("display"); //左侧菜单的display属性
                    if (fold == "none") {
                        free();
                        $(opts.Mright).css("width", $(window).width() - 40);
                    } else {
                        free();
                    }
                    Roll();
                    return false;
                });
                //折叠左侧菜单
                $(opts.foldCell).on("click", function() {
                    var fold = $(opts.Mleft).is(".min_w");
                    if (fold == true) {
                        var movetxt = $(".min_w .menu_icon").parent();
                        movetxt.off("mouseover");
                        $(opts.Mleft).removeClass("min_w");
                        free();
                    } else {
                        $(opts.Mleft).addClass("min_w");
                        $(opts.Mright).css("width", $(window).width());
                        minMenu();
                        free();
                    }
                    return false;
                });
                //----折叠时提示
                function minMenu() {
                    var movetxt = $(".min_w .menu_icon").parent("li");
                    movetxt.mouseover(function() {
                        var txt = $(this).find("a").text(),
                            html = "<div class='out_txt'><i class='fa fa-caret-left'></i><span>" + txt + "</span></div>",
                            appnum = $(this).find(".out_txt").length;
                        if (appnum <= 0) {
                            $(this).append(html).css("position", "relative");
                        }
                    });
                    movetxt.mouseout(function() {
                        $(this).find(".out_txt").remove();
                    });
                }
                //nav
                //$(opts.Mleft).hide(); //默认左侧菜单隐藏
                $(".nav li").on("click", function() {
                    $("iframe[name='cont_box']").css("opacity", "0");
                    $(".loading").show();
                    var that = $(this),
                        dataId = $(this).find("p").attr("data-id"),
                        dataFast = $(this).find("p").attr("data-fast");
                    /*普通方式，只是改变菜单的显示隐藏*/
                    var flag = 0;
                    if (dataFast != undefined) {
                        $(".menu li").each(function() {
                            if ($(this).find("a").attr("data-fast") == dataFast && flag <= 0) {
                                $(this).show();
                                $(this).addClass("curr").siblings().removeClass("curr");
                                $(".main_right").find("iframe").prop("src", $(this).find("a").attr("data-href"));
                                flag += 1;
                            } else if ($(this).find("a").attr("data-fast") == dataFast && flag > 0) {
                                $(this).show();
                            } else {
                                $(this).hide();
                            }
                        });
                    } else {
                        $(".menu li").each(function() {
                            if ($(this).find("a").attr("data-id") == dataId && flag <= 0) {
                                $(this).show();
                                $(this).addClass("curr").siblings().removeClass("curr");
                                $(".main_right").find("iframe").prop("src", $(this).find("a").attr("data-href"));
                                flag += 1;
                            } else if ($(this).find("a").attr("data-id") == dataId && flag > 0) {
                                $(this).show();
                            } else {
                                $(this).hide();
                            }
                        });
                    }
                    $(this).addClass("curr").siblings().removeClass("curr");
                    $(opts.Mleft).show();
                    free();

                    /*ajax方式追加*/
                    //				$.ajax({
                    //					type:"post",
                    //					url:"js/menu.json",
                    //					data:{id:dataId},
                    //					success:function(data){
                    //						$(".menu").html("");
                    //						for(var i=0;i<data.length;i++){
                    //							$(".menu").append("<li><i class='menu_icon fa fa-"+data[i].icon+"'></i><a href='javascript:void(0);' data-href="+data[i].href+">"+data[i].name+"</a></li>");
                    //						}
                    //						$(this).addClass("curr").siblings().removeClass("curr");
                    //						$(opts.Mleft).show();
                    //						$(".menu li").eq(0).addClass("curr");
                    //						$(".main_right").find("iframe").prop("src",$(".menu li").eq(0).find("a").attr("data-href"));
                    //						free();
                    //					}
                    //				});
                    minMenu();
                    return false;
                });
                //menu
                $("body").on("click", ".menu li", function() {
                    $("iframe[name='cont_box']").css("opacity", "0");
                    $(".loading").show();
                    $(this).addClass("curr").siblings().removeClass("curr");
                    var dataHref = $(this).find("a").attr("data-href");
                    $(opts.Mright).children().prop("src", dataHref);
                });
                //返回首页时
                $(".header .logo").click(function() {
                    $(opts.Mleft).hide(); //左侧菜单隐藏
                    $(".nav li").removeClass("curr");
                    free();
                    return false;
                });
                //nav roll
                //导航滚动
                function Roll() {
                    $(".nav ul").css("width", parseInt($(".nav li").outerWidth()) * parseInt($(".nav").find("li").length));
                    var navW = $(".nav ul").width(),
                        navL = $(".logo").outerWidth(),
                        navR = $(".login_msg").outerWidth(),
                        bodyW = $(window).width();
                    if (bodyW < parseInt(navW) + parseInt(navL) + parseInt(navR)) {
                        var rollW = $(".nav_roll").outerWidth(),
                            num = parseInt((parseInt(bodyW) - parseInt(navL) - parseInt(navR) - parseInt(rollW)) / parseInt($(".nav li").outerWidth())),
                            newW = parseInt($(".nav li").outerWidth()) * num;
                        $(".nav_roll").show();
                        $(".nav").css("width", newW);
                    } else {
                        $(".nav_roll").hide();
                        $(".nav").css("width", parseInt(bodyW) - parseInt(navL) - parseInt(navR));
                    };
                };
                var offset = parseInt($(".nav ul").width()) - parseInt($(".nav").width());
                $(window).resize(function() {
                    offset = parseInt($(".nav ul").width()) - parseInt($(".nav").width());
                    if ($(".nav ul").width() <= $(".nav").width()) {
                        $(".nav ul").animate({
                            left: "0px"
                        }, 300);
                    }
                });

                function navLeft() {
                    if ($(".nav ul").position().left < 0) {
                        $(".nav_roll .f_left").off("click");
                        $(".nav ul").animate({
                            left: $(".nav ul").position().left + parseInt($(".nav li").outerWidth()) + "px"
                        }, 300, function() {
                            $(".nav_roll .f_left").on("click", navLeft);
                        });
                    }
                }

                function navright() {
                    if ($(".nav ul").position().left > -offset) {
                        $(".nav_roll .f_right").off("click");
                        $(".nav ul").animate({
                            left: $(".nav ul").position().left + parseInt(-$(".nav li").outerWidth()) + "px"
                        }, 300, function() {
                            $(".nav_roll .f_right").on("click", navright);
                        });
                    }
                }
                $(".nav_roll .f_left").click(function() {
                    navLeft();
                });
                $(".nav_roll .f_right").click(function() {
                    navright();
                });
                //预约快捷方式
                $(".notification-laber").on("click", function() {
                    var dataFast = $(this).find("span").attr("data-fast"),
                        flag = 0;
                    $(".menu li").each(function() {
                        if ($(this).find("a").attr("data-fast") == dataFast) {
                            $(this).show();
                            $(this).addClass("curr").siblings().removeClass("curr");
                            $(".main_right").find("iframe").prop("src", $(this).find("a").attr("data-href"));
                            flag += 1;
                        } else if ($(this).find("a").attr("data-fast") == dataFast && flag > 0) {
                            $(this).show();
                        } else {
                            $(this).hide();
                        }
                    });
                    $(".nav li").each(function() {
                        if ($(this).find("p").attr("data-id") == "appointment") {
                            $(this).addClass("curr").siblings().removeClass("curr");
                        }
                    });
                    $(opts.Mleft).show();
                    free();
                });
            });
        });
    };
})(jQuery);